This invention relates generally to communication systems, and more particularly to soft output decoders for use in a receiver of a convolutional code communication system.
Convolutional codes are often used in digital communication systems to protect transmitted information. At the transmitter, an outgoing code vector may be described using a trellis diagram whose complexity is determined by the constraint length of the encoder. Although computational complexity increases with increasing constraint length, the robustness of the coding also increases with constraint length.
At the receiver, a practical soft-decision decoder, such as a Viterbi decoder as is known in the art, uses a trellis structure to perform an optimum search for the maximum likelihood transmitted code vector. Coders for various communications systems, such as Direct Sequence Code Division Multiple Access (DS-CDMA) standard IS-95 and Global System for Mobile Communications (GSM) employ convolutional codes for error correction.
More recently, turbo codes have been developed that outperform conventional coding techniques. Turbo codes are generally composed of two or more convolutional codes and turbo interleavers. Turbo decoding is iterative using a soft output decoder to decode the constituent convolutional codes. The soft output decoder provides a reliability measure on each information bit, which helps the soft output decoder decode the other convolutional codes. The soft output decoder is usually a MAP (maximum a posterior) decoder, which uses both backward and forward decoding to determine the soft output. However, because of memory, processing, and numerical tradeoffs, MAP decoding is usually limited to a sub-optimal approximation. All of these variants require both forward and backward decoding over the block.
For future standards, such as the 3GPP (third generation partnership project for wireless systems), an 8-state turbo code with a block length of N=5120, will need 40960 words of intermediate storage, which may be unacceptable for practical implementation. Future systems employing larger frames and a greater number of states will require even more memory. By comparison, a Viterbi decoder that does not produce soft outputs for an N=5120, 8-state trellis requires less than 100 words of intermediate storage.
There is a need for a soft output decoder that reduces overall memory and processing requirements for decoding convolutional codes without the limitations imposed by prior art turbo and MAP decoders.